#pragma once

#define WIN32_LEAN_AND_MEAN
#include <Windows.h>

class IMessage;

class IEntity
{
public:
	virtual ~IEntity(void) = 0
	{
	}

	virtual void Update(float fElapsedTime) = 0;
	virtual void Render() = 0;

	virtual int GetEntityType() const = 0;
	virtual RECT GetRect() const = 0;
	virtual void HandleCollision(const IEntity* pOther) = 0;
	virtual void HandleMessage(const IMessage* pMessage) = 0;

	virtual void AddRef() = 0;
	virtual void Release() = 0;
};

